package com.qf.hotel.utils;

import com.alibaba.druid.util.StringUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * 文件上传工具类
 */
public class FileUploadUtils {

    public static String uploadFile(HttpServletRequest request, String fileFieldName, String folderName) throws IOException, ServletException {
        Part part = request.getPart(fileFieldName);

        // 获取上传的文件的名字
        String filename = part.getSubmittedFileName();
        // 没有选择上传的文件
        if (StringUtils.isEmpty(filename)) {
            return "";
        }

        // 得到文件的后缀名
        String suffixName = filename.substring(filename.lastIndexOf("."));//jpg   //.jpg

        //创建一个新文件名【目标文件名】
        String destFileName = UUID.randomUUID().toString().replaceAll("-", "").concat(suffixName);

        //上传的目标位置
        String destPath = request.getSession().getServletContext().getRealPath(folderName);

        File file = new File(destPath, destFileName);

        //判断父目录是否存在？【images目录是否存在】
        if (!file.getParentFile().exists()) {
            //如果存放的文件的目录不存在，创建
            file.getParentFile().mkdirs();
        }

        //上传：复制文件到服务器上
        part.write(destPath + destFileName);

        return folderName + destFileName;

    }
}
